package com.academic.system.repository;

import com.academic.system.model.HorizontalProject;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 横向课题Mapper接口
 */
@Mapper
public interface HorizontalProjectRepository {
    
    /**
     * 根据ID查找横向课题
     */
    HorizontalProject findById(Integer id);
    
    /**
     * 查询创建者的所有横向课题
     */
    List<HorizontalProject> findByCreatorId(Integer creatorId);
    
    /**
     * 根据审核状态查询横向课题
     */
    List<HorizontalProject> findByApprovalStatus(String approvalStatus);
    
    /**
     * 根据创建者ID和状态查询横向课题
     */
    List<HorizontalProject> findByCreatorIdAndStatus(@Param("creatorId") Integer creatorId, @Param("approvalStatus") String approvalStatus);
    
    /**
     * 插入新横向课题
     */
    int insert(HorizontalProject horizontalProject);
    
    /**
     * 更新横向课题信息
     */
    int update(HorizontalProject horizontalProject);
    
    /**
     * 删除横向课题
     */
    int deleteById(Integer id);
    
    /**
     * 查询所有横向课题
     */
    List<HorizontalProject> findAll();
    
    /**
     * 统计创建者的横向课题数量
     */
    int countByCreatorId(Integer creatorId);
    
    /**
     * 统计创建者特定状态的横向课题数量
     */
    int countByCreatorIdAndStatus(@Param("creatorId") Integer creatorId, @Param("approvalStatus") String approvalStatus);
} 